/**
 * 
 */
package com.cr.backbone.service.business.sysfile.imp;

import java.io.File;

import com.cr.backbone.hibenate.AppBaseServiceImpl;
import com.cr.backbone.model.SysFile;
import com.cr.backbone.service.business.sysfile.SysFileService;
import com.cr.backbone.util.UtilsConfig;
import com.cr.backbone.util.UtilsConfigProperties;
import com.cr.backbone.util.UtilsDateTime;
import com.cr.backbone.util.UtilsFile;
import com.readnote.user.model.User;

/**
 * @project RaedNote
 * @version 1.0
 * @company 
 * @fileType SysFileService SysFileService.java
 * @author huxh
 * @date 2012-6-15
 */
/**
 * 
 * @author huxh
 * @date 2012-6-15 
 */
public class SysFileServiceImp extends AppBaseServiceImpl<SysFile> implements SysFileService {

	
	
	/**
	 * 生产SysFile记录
	 * @param file
	 * @param fileTitle
	 * @param fileType
	 * @param createUserName
	 * @param createUser
	 * @param createIp
	 * @return
	 * @author huxh
	 * @date 2012-6-15 
	 */
	public SysFile saveSysFile(File file, String fileTitle, String fileType,String createUserName, User createUser, String createIp){
		
		SysFile sysFile = null;
		// 1 验证源文件是否存在
		if(file == null){
			return sysFile;
		}
		
		// 2 保存文件记录
		sysFile=new SysFile();
		
		sysFile.setCreateDate(UtilsDateTime.getCurrentDate());
		sysFile.setCreateUser(createUser);
		sysFile.setCreateUserName(createUserName);
		sysFile.setCreateClientIp(createIp);
		
		
		String fileRealPath=UtilsFile.getPath( file.getPath() );
		String fileName=file.getName();
		int beginIndex = fileRealPath.indexOf(UtilsConfigProperties.getInstance().getProperty(UtilsConfig.FILE_PATH_UPLOAD_ROOT_FOLDER));
		String filePath=fileRealPath;
		if(beginIndex>0){
			filePath=fileRealPath.substring(beginIndex);
		}
		
		sysFile.setFileType(fileType);
		sysFile.setFileTitle(fileTitle);
		sysFile.setFileName(fileName);
		sysFile.setFilePath(filePath);
		sysFile.setFileRealPath(fileRealPath);
		sysFile.setFileSize(UtilsFile.getFileSizeKMG(file.length()));
		sysFile.setFileSizeUnit(UtilsFile.getFileSizeKFormat(file.length()));
		
		
		sysFile.setFileSubfix(UtilsFile.getFileExt(fileName));
		
		dao.save(sysFile);
		
		return sysFile;
	}
	
}
 